Industrial automation or control systems include controllers to monitor and control machinery in a manufacturing process, as well as human machine interfaces (HMI) to allow operators to interact with the controllers or other devices in the systems. A controller of this type typically is a special purpose computer that runs a stored control program in a specific programming language in real-time. The controller examines a series of inputs, typically from sensors, reflecting the status of a controlled machine or process and, based on the logic of the control program, generates outputs in the form of electrical signals to control actuators or the like to control the machine or process. One type of controller is a programmable logic controller (PLC), which typically runs under the direction of a ladder logic program that includes instructions or statements which define relationships between an output variable and one or more input variables. In ladder logic programs, the input and output variables can be represented graphically as contact symbols and coil symbols arranged in a series of rungs running between a pair of vertical power rails, and it is common to represent and view these programs graphically.
Industrial control systems can store a significant amount of data of various types and taking a variety of forms, including for example, HMI display graphic files (GFX), HMI project configurations, PLC files with ladder logic code, network configuration, file attributes and file metadata, for example New Technology File System (NTFS) metadata. Much of this data is stored in associated data files on file systems in one or more locations. The industrial devices can also generate a significant amount of data relevant to the operation of the manufacturing process, such as data from sensors or data indicative of various events, including alarms that can occur in the control system. This industrial data can be relevant and useful to an operator such as a control system designer or control system administrator in order to design new systems, add components, design new programs or interfaces, or troubleshoot problems.
Industrial data of these types can be converted to a structural data form and stored in a structured database. Various structural data forms exist, such as for example, XML (extensible markup language), OWL (web ontology language), or RDF (resource description framework) formats. Searching a structured database, such as an RDF-Schema (RDFS) or OWL configured database, requires knowledge of a specialized and complex query language, such as SPARQL (query language for RDF). SPARQL can thus be used to produce queries for searching an RDF representation of file content, including content representative of ladder logic programs, graphic files, etc. For querying XML databases, specialized and complex query languages, such as XQuery and XPath are also required. To be able to query databases containing structural data using the above mentioned query languages directly, a user would have to be familiar with the relations and hierarchy between the data, which are stored in the database, and also with the names of items forming the structure (e.g., names of classes and their attributes), and with the content and format of values (e.g., strings, numbers, dates).
When performing such a search, a user will often have to become familiar with numerous types of objects (such as for example “Tags”), their properties (attributes), values of these properties, and with reciprocal relations between the objects, which form a hierarchical structure. The aforementioned “Tags” are commonly used for identification of a memory unit in a particular device. Without the knowledge of the specific object types, their properties, values assigned to the properties, and relations used on particular devices or in particular file types (such as HMI files), search requests may continually fail to produce any results, even if a user is well versed in the complex query language.
Accordingly, it would be desirable to provide a method for generating structural queries for industrial or any other data which does not require extensive knowledge of searched object types, their properties, values of the properties, relations used in the structure, and a complex query language. It would further be desirable to provide a method for generating structural queries which overcomes the limitations of conventional searching techniques resulting from unfamiliarity with the variables used in conjunction with the various devices or files.